Amazon DocumentDB (MongoDB-সংক্রান্ত ডেটাবেস) MongoDB-তে বিদ্যমান ACID (Atomicity, Consistency, Isolation, Durability) ট্রানজাকশন সমর্থন করে না, তবে কিছু সীমিত Multi-Document Transaction সমর্থন করে যা MongoDB 4.0 থেকে শুরু হয়। MongoDB এবং DocumentDB-এর মধ্যে প্রধান পার্থক্য হল যে, MongoDB সম্পূর্ণ ACID ট্রানজাকশন সমর্থন করে, যেখানে DocumentDB multi-document transactions সমর্থন করে কিন্তু তা শুধুমাত্র নির্দিষ্ট সীমাবদ্ধতায় কাজ করে।
এখানে আমরা DocumentDB এর ট্রানজাকশন কনফিগারেশন এবং ব্যবস্থাপনা নিয়ে বিস্তারিত আলোচনা করব।
DocumentDB Multi-Document Transactions সমর্থন করে যা একাধিক ডকুমেন্টকে একসাথে আপডেট বা পরিবর্তন করতে সক্ষম। তবে, এর সীমাবদ্ধতা রয়েছে, যেমন:
একটি ট্রানজাকশন তৈরি করা:
const session = client.startSession();
session.startTransaction();
try {
// একাধিক ডকুমেন্ট আপডেট করা
const collection = db.collection('products');
// পণ্যের মূল্য আপডেট করা
await collection.updateOne(
{ product_id: "12345" },
{ $set: { price: 19.99 } },
{ session }
);
// স্টক আপডেট করা
await collection.updateOne(
{ product_id: "12345" },
{ $set: { stock: 150 } },
{ session }
);
// ট্রানজাকশন কমিট করা
await session.commitTransaction();
} catch (error) {
// যদি কোনো ত্রুটি ঘটে, ট্রানজাকশন রোলব্যাক করা হবে
await session.abortTransaction();
} finally {
session.endSession();
}
এখানে startSession()
একটি নতুন ট্রানজাকশন শুরু করবে এবং commitTransaction()
এবং abortTransaction()
ব্যবহার করে ট্রানজাকশন সফল বা ব্যর্থ হওয়ার পরে যথাযথভাবে তা সম্পন্ন বা রোলব্যাক করা হবে।
DocumentDB-তে ট্রানজাকশন ব্যবহারের জন্য কিছু নির্দিষ্ট কনফিগারেশন সেটআপের প্রয়োজন হয়:
write concern
কনফিগার করা প্রয়োজন যাতে ডেটার সঠিক লেখন নিশ্চিত করা যায়। MongoDB এবং DocumentDB উভয়েই write concern
সেট করা সম্ভব।ট্রানজাকশন সম্পন্ন করার জন্য দুটি প্রধান অপশন রয়েছে:
await session.commitTransaction();
await session.abortTransaction();
DocumentDB এবং MongoDB উভয়েই ট্রানজাকশনের কার্যকারিতা মনিটর করতে operation logs বা transaction logs প্রদান করে। আপনি AWS CloudWatch এবং MongoDB Logs ব্যবহার করে ট্রানজাকশনের পারফরম্যান্স এবং সঠিকতা ট্র্যাক করতে পারেন।
DocumentDB-তে ট্রানজাকশন ব্যবহারের পারফরম্যান্সের উপর কিছু সীমাবদ্ধতা থাকতে পারে, কারণ এটি একটি distributed database। একাধিক ডকুমেন্ট আপডেট করার সময়, এটি কিছুটা latency বাড়াতে পারে। তাই এটি তখনই ব্যবহৃত উচিত যখন আপনি নিশ্চিত যে একাধিক ডকুমেন্টের উপর একই সময়ে আপডেট বা লেখন কার্যকরী হতে হবে।
DocumentDB-তে Multi-Document Transactions ব্যবহৃত হয় এবং এটি MongoDB এর মতো কিছু সীমাবদ্ধতার সঙ্গে কাজ করে। যদিও এটি MongoDB-এর পুরো ACID ট্রানজাকশন সমর্থন করে না, তবে এটি সিম্পল ট্রানজাকশন সমর্থন করে, যা কিছু পরিস্থিতিতে কার্যকরী হতে পারে। DocumentDB-এর ট্রানজাকশন ব্যবস্থাপনা মূলত Atomicity এবং Consistency নিশ্চিত করতে ব্যবহৃত হয়, তবে উন্নত Isolation এবং Durability অপশনগুলি সীমিত।
common.read_more